Computers are rapidly proliferating in every aspect of our lives, in the home and at work. Nevertheless, computers, computer parts and components, and software remain relatively expensive. Thus, there is a need to particularly identify and track such items to maintain some aspect of control over these items. The following presents several examples of why there are needs for such control mechanisms.
Typically, a computer system is sold with numerous pieces of software stored therein. Pirating of software is quite simple and may be performed by merely copying the software from its source. The owner, or licensor, of the software usually does not intend to distribute or license their software with the assumption that it will be copied without receipt of some type of compensation. Therefore, software developers are always searching for improved methods of license verification.
Correspondingly, many software developers license their program products for use on a single computer system and then need a mechanism which allows the program as part of the license verification process to determine the machine serial number of the computer system upon which the program is currently executing. As an example, a software developer may license a program to a licensee for use on only specific computer systems identified by their machine serial number.
Software developers also need assurance that the unique machine serial number returned via the method mentioned above is in fact the serial number assigned by the manufacturer of the computer system.
Control during manufacturing of computer components and systems is also a high priority. As a result, the manufacturer of a computer system needs an automated way to assign unique machine serial numbers for order tracking and system build work-in-progress control.
Yet still further, a computer system manufacturer requires an automatic method of tracking the presence and configuration of currently installed optional subsystems to track and verify the configuration of the computer system with respect to the customer's order.
Additionally, such manufacturers need a convenient method to physically affix a machine or subassembly identification label and ensure that the visual identification number matches an electronically readable identification number. However, presently such labels are too easily removed or tampered with.
There is a further need for the owner of a computer system to have an automatic means of remotely determining the serial number of various computer systems under his/her control for the purposes of asset management Again, the machine serial number needs to be unique and must be resistant to alteration.
Computer system owners also have a need to remotely confirm the presence and configuration of optional subsystems within a computer system for the purposes of asset management.
One prior art solution for the foregoing needs is to permanently affix to a subassembly card a unique part number written to a programmable read-only electronic device attached to the card using traditional mounting techniques. This card is then subsequently installed in a computer system in a separate manufacturing process. The computer system provides a means for software to read the contents of this device either directly or via intermediary firmware. The identification number in the programmable read-only memory ("PROM") is generally not the same as the identification number assigned to the computer system as a unit. The problem with this approach is that when the electronic subassembly needs to be replaced in the field, the system identifier is changed when the replacement subassembly is installed. This forces the user to obtain new license keys for any installed software products which employ the system identifier for license verification. Also, the electronically readable identification number is not unique across computer systems manufactured by a particular computer maker or even within a machine model and type from a specific plant or manufacturer.
A second prior art solution, which is a variant of the above solution, is to make the read-only electronic device containing the system identifier pluggable. In this case, the device can be moved to the replacement subassembly when the defective one is removed This eliminates the inconvenience to the customer of obtaining new software keys for software the user already owns, but it introduces a licensing security problem in that the pluggable device is easily removed, duplicated, or placed in multiple computer systems by a person seeking to defeat the program product license verification process.
Both of these prior art implementations suffer from the problem that the storage device used to electronically contain the serial number is expensive or must be soldered or plugged into a socket which is soldered to a major electronic subassembly. The cost limits the application to the identification of either the complete computer as a unit or to only a few major subassemblies. In addition, the identification number of a major subassembly when used as the machine identification number may be non-unique.